package com.hbm.usercenter.base;

import android.view.View;

public abstract class BaseHolder<HOLDERBEANTYPE> {
	public View				mHolderView;
	private HOLDERBEANTYPE	mData;

	public BaseHolder() {
		// 2.决定根布局
		mHolderView = initHolderView();
		// 4.绑定tag
		mHolderView.setTag(this);
	}

	/**
	 * @des 保存数据,刷新itemView
	 */
	public void setDataAndRefreshHolderView(HOLDERBEANTYPE data) {
		mData = data;
		refreshHolderView(data);
	}

	/**
	 * @return
	 * @des 初始化根布局,必须实现,但是不知道具体实现,定义成抽象方法,交给子类具体实现
	 * @call BaesHolder具体子类被初始化的时候被调用
	 */
	protected abstract View initHolderView();

	/**
	 * des 刷新itemView,必须实现,但是不知道具体实现,定义成抽象方法,交给子类具体实现
	 */
	protected abstract void refreshHolderView(HOLDERBEANTYPE data);
}
